function move(ele, obj, callback){
    clearInterval(ele.time);
    ele.time = setInterval(()=>{
        let flag = true;
        for(let i in obj){
            let now = i==="opacity" ? getStyle(ele, i)*100 : parseInt(getStyle(ele, i));
            let speed = (obj[i] - now) / 10;
            speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
            ele.style[i] = i==="opacity" ? (now+speed)/100 : now+speed+"px";
            if(now !== obj[i]) flag = false;
        }
        if(flag){
            clearInterval(ele.time);
            callback && callback();
        }
    }, 30);
}
function getStyle(ele, attr){
    return getComputedStyle ? getComputedStyle(ele)[attr] : ele.currentStyle[attr];
}